// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package com.google.zxing.qrcode.decoder; import com.google.zxing.FormatException; import com.google.zxing.common.BitMatrix; // Referenced classes of package com.google.zxing.qrcode.decoder: // n, Version, c final class a { private final BitMatrix a; private Version b; private n c; a(BitMatrix bitmatrix) { int i = bitmatrix.getHeight(); if (i < 21 || (i & 3) != 1) { throw FormatException.getFormatInstance(); } else { a = bitmatrix; return; } } private int a(int i, int j, int k) { if (a.get(i, j)) { return 1 | k << 1; } else { return k << 1; } } n a() { int i = 0; if (c != null) { return c; } int j = 0; int k = 0; for (; j < 6; j++) { k = a(j, 8, k); } int l = a(8, 7, a(8, 8, a(7, 8, k))); for (int i1 = 5; i1 >= 0; i1--) { l = a(8, i1, l); } int j1 = a.getHeight(); int k1 = j1 - 7; for (int l1 = j1 - 1; l1 >= k1; l1--) { i = a(8, l1, i); } for (int i2 = j1 - 8; i2 < j1; i2++) { i = a(i2, 8, i); } c = n.b(l, i); if (c != null) { return c; } else { throw FormatException.getFormatInstance(); } } Version b() { if (b != null) { return b; } int i = a.getHeight(); int j = i - 17 >> 2; if (j <= 6) { return Version.getVersionForNumber(j); } int k = i - 11; int l = 5; int i1 = 0; for (; l >= 0; l--) { for (int i2 = i - 9; i2 >= k; i2--) { i1 = a(i2, l, i1); } } Version version = Version.a(i1); if (version != null && version.getDimensionForVersion() == i) { b = version; return version; } int j1 = 0; for (int k1 = 5; k1 >= 0; k1--) { for (int l1 = i - 9; l1 >= k; l1--) { j1 = a(k1, l1, j1); } } Version version1 = Version.a(j1); if (version1 != null && version1.getDimensionForVersion() == i) { b = version1; return version1; } else { throw FormatException.getFormatInstance(); } } byte[] c() { n n1 = a(); Version version = b(); c c1 = com.google.zxing.qrcode.decoder.c.a(n1.b()); int i = a.getHeight(); c1.a(a, i); BitMatrix bitmatrix = version.a(); byte abyte0[] = new byte[version.getTotalCodewords()]; int j = i - 1; int k = 0; int l = 0; int i1 = 0; boolean flag1; for (boolean flag = true; j > 0; flag = flag1) { if (j == 6) { j--; } int k1; for (int j1 = 0; j1 < i; j1++) { int l1; if (flag) { k1 = i - 1 - j1; } else { k1 = j1; } for (l1 = 0; l1 < 2; l1++) { if (bitmatrix.get(j - l1, k1)) { continue; } k++; l <<= 1; if (a.get(j - l1, k1)) { l |= 1; } if (k == 8) { int i2 = i1 + 1; abyte0[i1] = (byte)l; l = 0; i1 = i2; k = 0; } } } flag1 = flag ^ true; j -= 2; } if (i1 != version.getTotalCodewords()) { throw FormatException.getFormatInstance(); } else { return abyte0; } } }